/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

function validarUsuario(formulario) {
    return (vacios(formulario) && validarcorreo(formulario) && validarCategoria(formulario) && validaruser());
}

function validarVaciosLogin(formulario){
    var error = 0;
    var i = 0;
     for (i = 0; i < formulario.usuario.value.length; i++) {
        if (formulario.usuario.value.charAt(i) != " ") {
            break;
        }
    }
    if (i == formulario.usuario.value.length) {
        error = 2;
    }
    for (i = 0; i < formulario.clave.value.length; i++) {
        if (formulario.clave.value.charAt(i) != " ") {
            break;
        }
    }
    
    if (i == formulario.clave.value.length) {
        error = 3;
    }
     return mensaje(error);
}

function vacios(formulario) {
    var error = 0;
    var i = 0;
    for (i = 0; i < formulario.nombre.value.length; i++) {
        if (formulario.nombre.value.charAt(i) != " ") {
            break;
        }
    }
    if (i == formulario.nombre.value.length) {
        error = 1;
    }
    for (i = 0; i < formulario.username.value.length; i++) {
        if (formulario.username.value.charAt(i) != " ") {
            break;
        }
    }
    if (i == formulario.username.value.length) {
        error = 2;
    }
    for (i = 0; i < formulario.clave.value.length; i++) {
        if (formulario.clave.value.charAt(i) != " ") {
            break;
        }
    }
    
    if (i == formulario.clave.value.length) {
        error = 3;
    }
    for (i = 0; i < formulario.correo.value.length; i++) {
        if (formulario.correo.value.charAt(i) != " ") {
            break;
        }
    }
    if (i == formulario.correo.value.length) {
        error = 4;
    }
    return mensaje(error);
}
        
function validarcorreo(formulario) {
    var correo = formulario.correo.value;
    var error = 5;
    var expresion = /^[^@\s]+@[^@\.\s]+(\.[^@\.\s]+)+$/;
    var valor = expresion.test(correo);
    if (valor) {
        error = 0;
    }
    return mensaje(error);
}
        
function validarCategoria(formulario) {
    var categoria = formulario.categoria.value;
    var error = 6;
    if (categoria == 'Administrador' || categoria == 'DACE' || categoria == 'DIDE' || categoria == 'DII' || categoria == 'CPyD') {
        error = 0;
    }
    return mensaje(error);
}

function validaruser() {
    error = 0;
    if (document.getElementById("error").style.visibility == 'visible') {
        error = 7;
    }
    return mensaje(error);
}

function mensaje(error) {
    switch(error) {
        case 1:
            window.alert('El campo Nombre es requerido');
            return false;
        case 2:
            window.alert('El campo Usuario es requerido');
            return false;
        case 3:
            window.alert('El campo Clave es requerido');
            return false;
        case 4:
            window.alert('El campo Correo es requerido');
            return false;
        case 5:
            window.alert('Formato de correo no valido');
            return false;
        case 6:
            window.alert('Campo Categoria no valido');
            return false;
        case 7:
            window.alert('Usuario no disponible');
            return false;
        default:
            return true;
    }
}

function autentica() {
    usuario = document.getElementById("userid").value;
    url = "existeUsuario.jsp?usuario=" + encodeURIComponent(usuario);
    leer_doc(url);
}

function leer_doc(url) {
    req = false;
    if (typeof XMLHttpRequest != "undefined") {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.open('GET', url, true);
    req.onreadystatechange = callback;
    req.send(null);
}

function callback() {
    if (req.readyState == 4) {
        if (req.status == 200) {
            var existe = req.responseXML.getElementsByTagName("message").item(0).firstChild.data;
            if (existe == "valid")
                document.getElementById("error").style.visibility = "hidden";
            else
                document.getElementById("error").style.visibility = "visible";
        }
    }
}

function validarAlfanumerico(nombre) {
    var patron = /[^a-z|\s|0-9]+/i;
    if(nombre.length > 0 && patron.test(nombre)) {
        alert("El nombre solo puede contener caracteres alfanuméricos.");
        return false;
    }
    
    return true;
    
}

function validarNumerico(valor) {
    var patron = /[^\d]+/;
    
    if (valor.match(patron) != null) {
        alert("Ha introducido un valor no numérico.");
        return false;
    }
    
    return true;
}

function validarTelefono(telefono) {
    
    if(telefono.length > 0 && telefono.length != 11) {
        alert("El numero introducido no tiene la longitud suficiente\n\
              para ser un telefono. Recuerde que debe añadir el \n\
              código de la operadora.")
        return false;
    }
    
    if (validarNumerico(telefono)) 
        return true;
    else
        return false;
    
}
